package com.tom.architect.party3.day29.simple1;

import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import com.tom.architect.R;

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

// 观察者
public class MainActivity292 extends AppCompatActivity {
    private static final String TAG = "MainActivity292";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main29);

        // Observable 被观察者; Observer 观察者; subscribe 注册订阅(注册观察者)。register.
        // 当被观察者发生状态改变，在集合里面循环，去通知注册的观察者。
        // 一注册(subscribe)，就通知观察者 被观察者发生了改变。观察者设计模式。
        // 正常流程依次打印：onSubscribe，onNext， onComplete
        Observable.just("url")
                .subscribe(new Observer<String>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.e(TAG, "onSubscribe: ");
                    }

                    @Override
                    public void onNext(String s) {
                        // just里面传递的值，传入到这个s。
                        Log.e(TAG, "onNext: =" + s);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e(TAG, "onError: ");
                    }

                    @Override
                    public void onComplete() {
                        Log.e(TAG, "onComplete: ");
                    }
                });
        // 打印结果：
        // onSubscribe
        // onNext: =url
        // onComplete
    }

}
